R语言基础绘图

#R语言基础绘图 这是一期不怎么严谨的CSDN搬运专栏,主要介绍如何用R绘制基本统计图形 ##创建图形 ###图形的核心:plot()函数 plot()函数是R语言创建图形最基本的函数,plot()是一个泛型函数,真正被调用的函数依赖于对象所属的类

plot函数最基本的参数x,y,分别表示横纵坐标的取值向量
参数main指定标题,sub指定副标题,xlab和ylab分别指定x轴和y轴标签

###abline()函数和lines()函数
abline()函数可以用于向图中添加线条

例如:在当前图形中添加y=2+1*x描述的直线

1
abline(c(2,1))

abline()在编写时特意考虑了参数是回归结果的情形,因此如果参数是回归结果的对象,那么这个函数就会从lmout$coefficients中提取斜率和截距,然后画出这条直线

1
library("wooldridge")
1
2
3
```

```library("lmtest")
1
2
3
```

```lmout=lm(wage1$lwage~wage1$educ)
1
2


abline(lmout)

1
2
3
4
5
6
7
8
9
10
11
12

![](https://i.imgur.com/RekAKL4.png)

lines()函数同样用于向图中添加直线,尽管lines()有很多的参数,但是有两个最基本的参数,分别表示x轴的取值向量和y轴的取值向量.两个参数联合起来表示向当前图形添加的点对(x,y),并在之后依次用线条把它们连接起来

如果你只想画出线条,而不想将其中的连接点绘制出来,可以将参数type="1"添加到lines()或plot()中

还可以用plot()中的参数lty来指定线条类型,如指定实线还是虚线
###points()函数
points()函数可以向现有的图形中添加一系列的点对(x,y),每个点都用一种图形元素来表现

例如:向当前图中添加Exam1和Exam2成绩的散点图,其中每一个点都用"+"来标记

points(testscore$Exam1,testscor$Exam3,pch=”+”)

1
2
3
4
###legend()函数
legend()函数用于向拥有多条曲线的图中添加图例
###text()函数
利用text()函数可以在图形的任意位置加上一些文字

text(2.5,4,”abc”)

1
2
3
4
5
6

![](https://i.imgur.com/MYtGvpt.png)
这将在图形中点(2.5,4)的位置加上文字"abc",字符串的中心,将正好位于(2.5,4)
###locator()函数
调用locator()函数,然后在图形中需要的位置点击鼠标,这个函数就会返回你点中之处的坐标.利用locator()函数,可以将文字精确放在你想要的位置.
下面这个命令将会告诉R,你会在图中点击二次.

locator(2)

1
2

下面是一个简单的例子:点击之后,函数会返回一个列表,其元素x,y分别表示所点位置的横纵坐标

hist(c(12,5,13,25,16))

1
2
3

```
locator(2)

$x

[1] 12.06204 17.31315

$y

[1] 1.998410 1.032207
##改变图形
###改变字符大小:cex
cex选项用于放大或缩小图形中的字符,在许多绘图函数中,你都可以将它作为一个参数代入其中.
例如:输入以下命令可以实现对”abc”字符的放大输出

1
text(2.5,4,"abc",cex=1.5)

###改变坐标轴的范围:xlim和ylim选项
你可能希望x轴或y轴的范围比默认情况更大或更小,要做到这一点,你可以在plot()和points()函数中指定xlim和ylim参数来对坐标轴调整.

如果你要绘制多条曲线,又没有指定xlim或ylim,那么就应该首先绘制最高最宽的那条.否则R只会根据第一条曲线绘制图形,然后将最高的那些在顶部截断
###平滑散点:lowess()
可以用lowess()对散点拟合一条平滑的非参数回归线

例如:可以实现考试成绩之间的平滑

1
plot(testscores)
1
lines(lowess(testscores))


###绘制具有显式表达式的函数
如果你想绘制函数g(t)=t+1在0到5之间的图像,可以利用curve()函数

1
curve(x+1,0,5)

如果想向图中添加这条曲线,则可以使用add参数:add=”T”
###function(x)
同样,如果想绘制函数在某区间上的图像,也可以用function(x)说明对函数画图
例如想画pnorm函数在(-3,3)的图像

1
plot(function(x) pnorm(x,lower.tail=F), -3, 3)